package br.com.salao.dao;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import br.com.salao.bean.Pais;
import br.com.salao.util.JpaUtil;


public class PaisDaoImpl implements PaisDao {

	private final GenericDao<Pais> dao;

	public PaisDaoImpl(EntityManager em) {
		dao = new GenericDao<Pais>(em, Pais.class);
	}
	
	public boolean inserir(Pais pais) {
		dao.salvar(pais);
		return true;
	}
	
	public List<Pais> listar(){		
		return dao.lista();
	}		

	public Pais update(Pais pais){
		return dao.update(pais);
	}	
	
	@Override
	public Pais getPaisById(int id) {
		return dao.buscar(id);
	}
	
	
	public Pais localizar(String descricao){
		
		EntityManager em = JpaUtil.getEntityManager();

		Pais pais = null;

		try {

			Query query = em.createQuery("from Pais p where p.nome like :nomePais");
			query.setParameter("nomePais", "%"+descricao+"%");
			pais = (Pais) query.getSingleResult();

		} catch (Exception e) {
			
			pais = null;
			e.printStackTrace();

		} finally{
			if(em != null){
				em.close();
			}
		}
		return pais;
	}
	
	public Pais localizarPaisPorId(int idpais){
		
		EntityManager em =  JpaUtil.getEntityManager();

		Pais paisBD = null;

		try {

			Query query = em.createQuery("from Pais p where p.id = :idPais");
			query.setParameter("idPais", idpais);
			paisBD = (Pais) query.getSingleResult();

		} catch (Exception e) {
			
			paisBD = null;
			e.printStackTrace();

		} finally {
			em.close();
		}
		return paisBD;		
	}

}
